class Solution:
    def minMoves(self, nums):
        return sum(nums) - min(nums) * len(nums)
if __name__ == '__main__':
    nums = [1,2,3]
    print(Solution().minMoves(nums))

# 思路：
# 最小的那个数每次肯定会被加上1，假设一共操作了k次，则最终数组中每一个数都等于min(nums)+k
# 最终数组的和为：(min(nums)+k) * n   (其中n为数组的长度)
# 原始数组的和为：sum(nums)
# 最终数组的和 与 原始数组的和 相差k*(n-1)   因为每次操作数组的和都会增加n-1
# 因此：(min(nums)+k) * n - sum(nums) = k*(n-1)
# 化简得到：k = sum(nums) - min(nums) * n